Internet protocol (IP) networks route packets based on network and subnet identifiers encoded in each packet. Because early IP networks could easily be divided into networks and subnets based on geographic location of equipment and because IP networks developed before widespread deployment of wireless equipment, little or no attention was given to problems associated with moving IP devices. Due to the nature of IP, a device may not attach to a network other than its home network and still receive packets. That is, routing protocols, firewalls, and other protocols aimed at error and fraud prevention work together to prevent a packet from being delivered to a device not connected to its home network.
However, wireless communications systems employ a technique known as “tunneling” that allows mobile devices to attach to foreign networks and yet still receive packets. For a mobile device roaming in a foreign network, a home agent in the home network of the mobile device acts as a point of delivery for all packets addressed to the mobile device. The mobile device registers with a foreign agent in the foreign network, which permits the home agent to “tunnel” packets to the foreign agent. To tunnel a packet, the home agent creates a new packet addressed to the foreign agent that contains the original packet. The foreign agent, upon receiving the tunneled packet, may then extract the original packet and communicate that packet to the mobile device. However, while tunnels allow a mobile device to receive packets in one foreign network, communications sessions of mobile devices often suffer data loss and/or disconnection when handoff occurs between two different foreign networks.